package lumis.portal.structure;

/**
 * A accessor responsible to manage properties for {@link StructureElement}.
 *
 * @version $Revision: 11804 $ $Date: 2010-07-29 10:06:21 -0300 (Thu, 29 Jul 2010) $
 * @since 5.6.0
 */
public interface IStructureElementPropertiesAccessor
{
	/**
	 * Returns the property value for a given property name.
	 * The property value could be local or inherited.
	 * 
	 * @param propertyName the property name.
	 * @return the property value.
	 * @since 5.6.0
	 */
	public String getPropertyValue(String propertyName);
	
	/**
	 * Sets on the local property structure map a given <code>propertyValue</code> 
	 * property value for a given <code>propertyName</code> property name.
	 * 
	 * @param propertyName the property name
	 * @param propertyValue the property value
	 * @since 5.6.0
	 */
	public void setPropertyValue(String propertyName, String propertyValue);
	
	/**
	 * Removes a property for a given property name from the local property structure map.
	 * 
	 * @param propertyName the name of the property to be removed.
	 * @since 5.6.0
	 */
	public void removeProperty(String propertyName);
}
